package org.ysu.shoeShopping.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.ysu.shoeShopping.entity.Types;

import java.util.List;

/**
 * 鞋子类型业务服务接口
 * 定义鞋子类型分类相关的业务逻辑操作，包括：
 * - 类型基础CRUD操作
 * - 类型状态管理（启用/禁用）
 * - 类型信息查询和分页
 * - 支持各种鞋类分类管理
 *
 * @author makejava
 * @since 2025-09-13 16:57:44
 */
public interface TypesService {

    /**
     * 通过ID查询单条数据
     *
     * @param tid 主键
     * @return 实例对象
     */
    Types queryById(Integer tid);

    /**
     * 分页查询
     *
     * @param types 筛选条件
     * @param pageRequest      分页对象S
     */
    Page<Types> queryByPage(Types types, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param types 实例对象
     * @return 实例对象
     */
    Types insert(Types types);

    /**
     * 修改数据
     *
     * @param types 实例对象
     * @return 实例对象
     */
    Types update(Types types);

    /**
     * 通过主键删除数据
     *
     * @param tid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer tid);

    /**
     * 获取所有启用的鞋类型
     *
     * @return 启用的鞋类型列表
     */
    List<Types> getAllActiveTypes();

}
